#!/bin/bash

# 前端开发服务器启动脚本

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

print_info() {
    echo -e "${BLUE}ℹ️  $1${NC}"
}

print_success() {
    echo -e "${GREEN}✅ $1${NC}"
}

print_warning() {
    echo -e "${YELLOW}⚠️  $1${NC}"
}

print_error() {
    echo -e "${RED}❌ $1${NC}"
}

print_header() {
    echo ""
    echo -e "${BLUE}========================================${NC}"
    echo -e "${BLUE}$1${NC}"
    echo -e "${BLUE}========================================${NC}"
    echo ""
}

# 主函数
main() {
    print_header "🚀 AI Front 前端启动"
    
    # 1. 检查 Node.js
    print_info "检查 Node.js 版本..."
    if ! command -v node &> /dev/null; then
        print_error "Node.js 未安装"
        exit 1
    fi
    node_version=$(node --version)
    print_success "Node.js 版本: $node_version"
    
    # 2. 检查 npm
    print_info "检查 npm 版本..."
    npm_version=$(npm --version)
    print_success "npm 版本: $npm_version"
    
    echo ""
    
    # 3. 检查依赖
    print_info "检查依赖安装..."
    if [ ! -d "node_modules" ]; then
        print_warning "依赖未安装，正在安装..."
        npm install
        print_success "依赖安装完成"
    else
        print_success "依赖已安装"
    fi
    
    echo ""
    
    # 4. 检查后端服务
    print_info "检查后端 API 服务..."
    if curl -s http://localhost:8000 > /dev/null 2>&1; then
        print_success "后端服务正在运行 (http://localhost:8000)"
    else
        print_warning "后端服务未运行"
        print_info "请先启动后端服务："
        print_info "cd ../ai-agent && uvicorn app.main:app --reload"
    fi
    
    echo ""
    
    # 5. 启动开发服务器
    print_header "🌐 启动开发服务器"
    print_info "访问地址: http://localhost:5173"
    print_info "按 Ctrl+C 停止服务"
    echo ""
    
    npm run dev
}

# 错误处理
trap 'print_error "启动失败"; exit 1' ERR

# 执行主函数
main

